

#include "Vertice.h"



Vertice::Vertice(double X, double Y, double Z){
	dblX = X;
	dblY = Y;
	dblZ = Z;

	intNroConexionesBorde = 0;
	intNroConexionesVertice = 0;
	intNroConexionesCara = 0;
}


Vertice::Vertice(){
	intNroConexionesBorde = 0;
	intNroConexionesVertice = 0;
	intNroConexionesCara = 0;

}

void Vertice::Add1ConVertice(){
	intNroConexionesVertice++;	
}
	
void Vertice::Add1ConBorde(){
	intNroConexionesBorde++;
}

void Vertice::Add1ConCara(){
	intNroConexionesCara++;
}


void Vertice::CalcularNormal(){
	double dblValorTempX = 0.0;
	double dblValorTempY = 0.0;
	double dblValorTempZ = 0.0;

	for(unsigned int i=0;i<=intNroConexionesCara;i++)
	{
		dblValorTempX += vVectoresNormales[i].getX();
		dblValorTempY += vVectoresNormales[i].getY();
		dblValorTempZ += vVectoresNormales[i].getZ();
	}

	dblValorTempX = dblValorTempX/intNroConexionesCara;
	dblValorTempY = dblValorTempY/intNroConexionesCara;
	dblValorTempZ = dblValorTempZ/intNroConexionesCara;

	vNormal.setX(dblValorTempX);
	vNormal.setY(dblValorTempY);
	vNormal.setZ(dblValorTempZ);

	vNormal.ConvVectorUnitario();
}
